package lp2.projeto.database;

import java.io.*;
import org.junit.*;

/**
 * Classe que testa a classe Database
 */
public class TestaDatabase {
	/**
	 * Testa a classe Database
	 */
	@Test public void testaDatabase() throws IOException {
		Database.salvarObjeto("arquivo1", "string_exemplo");
		Assert.assertEquals("string_exemplo", Database.lerObjeto("arquivo1"));
	}
	
	/**
	 * Testa o retorno null de lerObjeto
	 */
	@Test public void testaLerObjeto() throws IOException {
		Object retorno = Database.lerObjeto("/usr/bin/arquivo_que_nao_existe");
		Assert.assertEquals(null, retorno);
	}
	
	/**
	 * Testa uma possivel excecao gerada
	 */
	@Test(expected = IOException.class) public void testaExcecao() throws IOException {
		Database.salvarObjeto("/usr/bin/sem_permissao_para_escrever", "bla2");
	}
	
	/**
	 * Testa uma possivel excecao gerada
	 */
	@Test(expected = IOException.class) public void testaExcecao2() throws IOException {
		Database.lerObjeto("/dev/null");
	}
}
